package com.wyd.strategy.demo2;

import com.wyd.strategy.demo2.behavior.impl.FlyWithSwingBehavior;
import com.wyd.strategy.demo2.behavior.impl.QuackGAGAGABehavior;

/**
 * 策略模式
 *
 * 封装变化，形成抽象算法与实现算法簇。客户通过组合抽象算法，将功能委托给算法簇实现
 *
 * @author Yudi Wang
 * @date 2022/1/5 16:54
 */
public class main {
    public static void main(String[] args) {
        Duck duck = new RubberDuck();
        duck.setFlyBebahavior(new FlyWithSwingBehavior());
        duck.setQuackBehavior(new QuackGAGAGABehavior());

        duck.display();
        duck.quack();
        duck.fly();
    }
}
